The present disclosure relates generally to information handling systems, and more particularly to data structure synchronization.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is an information handling system (IHS). An IHS generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements may vary between different applications, IHSs may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in IHSs allow for IHSs to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, IHSs may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Additionally, some embodiments of information handling systems include non-transient, tangible machine-readable media that include executable code that when run by one or more processors, may cause the one or more processors to perform the steps of methods described herein. Some common forms of machine readable media include, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or any other medium from which a processor or computer is adapted to read.
Computer networks form the interconnection fabric that enables reliable and rapid communications between computer systems and data processors that are in both close proximity to each other and at distant locations. These networks create a vast spider web of intranets and internets for handling all types of communication and information. Making all of this possible is a vast array of network switching products that make forwarding decisions in order to deliver packets of information from a source system or first network node to a destination system or second network node. Due to the size, complexity, and dynamic nature of these networks, sophisticated network switching products are often required to continuously make forwarding decisions and to update forwarding information as network configurations change. To provide redundancy and/or fail over support in the network, two or more network switching products in a network may provide backup or similar services for each other. In some examples, two network switching products may be configured as a high-availability pair where one network switching product may be configured to take over the responsibilities of a second network switching product when the second network switching product is unavailable due to maintenance and/or failure. In some examples, one network switching product may maintain duplicate copies of one or more data structures stored by a second network switching product. In order for the first network switching product to provide take over and/or backup support, the second network switching product, it may be useful for the first network switching product to maintain synchronized copies of one or more data structures being created and/or managed in the second network switching product. In many cases these data structures may be quite large in size, storing thousands or even tens of thousands or more entries. Due to the size of these data structures, it may not be practical to have the second network switching product forward a copy of the data structure to the first network switching product whenever synchronization between the data structures is desired.
Accordingly, it would be desirable to provide improved methods and systems for synchronizing data structures between two devices, such as two network switching products.